package com.ddwl.schema.bo.funds;

import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.Instant;

/**
 * 类CrePayOrderDto.java的实现描述：创建支付订单入参
 *
 * @author zach
 * @Date :2020-09-22 16:37.
 */
@Getter
@Setter
public class PayOrderCreBo {

    /**
     * 订单来源
     */
    @NotNull
    private String product;
    /**
     * 用户ID
     */
    @NotNull
    private String userId;
    /**
     * 用户名称
     */
    @NotNull
    private String userName;
    /**
     * 微信支付openid
     */
    private String openId;
    /**
     * 订单Id
     */
    @NotNull
    private String orderId;
    /**
     * 订单总支付金额
     */
    @NotNull
    @DecimalMin(value = "0.01", message = "金额最少一分钱")
    private BigDecimal totalAmount;
    /**
     * 订单类型 0,购物消费 1, 话费充值 2.帮扶基金
     */
    @NotNull
    private String orderType;
    /**
     * 支付结果回调队列名称
     */
    private String notifyMethod;
    /**
     * 订单过期时间
     */
    private Instant expirationTime;
    /**
     * 阶段id 如果一个订单是分多次付款的请传不同的阶段ID
     */
    private String phaseId;
    /**
     * 主订单id 如果存在多笔订单同时支付的情况请传主订单ID
     */
    private String masterOrderId;
}
